import request from '@/utils/request'

/**
 * 获取开业辅导综合统计（统一接口，对齐后端 Services 路由）
 * 路径：GET `/api/report/Services/guidance-statistics`
 * 参数：`startDate`、`endDate`、`managementArea`、`brand`（均为 camelCase，作为查询参数传递）
 * 返回：统一封装（`code/msg/data`），其中 `data` 为统计结果对象
 * 说明：后端该端点为 GET 方法，若使用 POST 将返回 404；注意大小写在部分反向代理中可能敏感，建议保持 `Services` 大写。
 * @param {Object} params 查询参数对象
 * @returns {Promise<Object>} 后端响应
 */
export function getGuidanceStatisticsUnified(params) {
  return request({
    url: '/api/report/services/guidance-statistics',
    method: 'get',
    // 说明：本项目 axios 拦截器会在 GET 请求下将 data 转换为 params
    // 若直接使用 params，拦截器会覆盖并导致参数丢失，因此需使用 data
    data: params
  })
}

/**
 * 获取以辅导师维度统计的开业辅导数据
 * 路径：GET `/api/report/Services/teacher-guidance-statistics`
 * 入参（camelCase）：
 * - `startDate`：开始日期（格式：`yyyy-MM-dd`）
 * - `endDate`：结束日期（格式：`yyyy-MM-dd`）
 * - `brand`：品牌编码（可选，字典 `BRAND` 的 `enCode`）
 * - `managementArea`：管理区域编码（可选，字典 `COMPANY` 的 `enCode`）
 * 返回：`{ code, msg, data }`，其中 `data` 结构示例：
 * ```json
 * {
 *   "brands": ["bell", "mcm"],
 *   "table": [
 *     {
 *       "teacherId": "T001",
 *       "teacherName": "张辅导",
 *       "brandCells": [
 *         { "brand": "bell", "openedCount": 5, "qualifiedCount": 3, "qualifiedRate": 60 },
 *         { "brand": "mcm", "openedCount": 2, "qualifiedCount": 2, "qualifiedRate": 100 }
 *       ],
 *       "totalOpened": 7,
 *       "totalQualified": 5,
 *       "totalQualifiedRate": 71.43
 *     }
 *   ]
 * }
 * ```
 * 备注：为保证 GET 参数不丢失，保持在 `data` 字段中传参，由拦截器自动转换为查询参数。
 * @param {Object} params 查询参数对象
 * @returns {Promise<Object>} 后端响应
 */
export function getTeacherGuidanceStatistics(params) {
  return request({
    url: '/api/report/Services/teacher-guidance-statistics',
    method: 'get',
    data: params
  })
}

/**
 * 导出开业辅导统计为CSV（Excel兼容）
 * 路径：POST /api/report/services/guidance-statistics/export
 * 返回：blob(csv)
 */
export function exportGuidanceStatisticsCSV(params) {
  return request({
    url: '/api/report/services/guidance-statistics/export',
    method: 'post',
    data: params,
    responseType: 'blob'
  })
}

/**
 * 导出开业辅导统计为Excel（.xlsx）
 * 说明：后端基于EPPlus生成多工作表（概览/区域/品牌/时间趋势/回访）
 * 路径：POST /api/report/services/guidance-statistics/export-excel
 * 参数：与统计接口一致（startDate、endDate、managementArea、brand等）
 * 返回：blob(xlsx)
 * @param {Object} params 查询参数
 * @returns {Promise<Blob>} Excel文件二进制流
 */
export function exportGuidanceStatisticsExcel(params) {
  return request({
    url: '/api/report/services/guidance-statistics/export-excel',
    method: 'post',
    data: params,
    responseType: 'blob'
  })
}
